﻿<?
define('NOPERM', '#0');//Недостаточно привелегий
define('NOTALLRESOURCES','#1'); //Не все параметры переданы
/*
    Обобщающая оболочка
*/
class MChat
{
	Public $DBUserTable = 'users';
	Public $DBHistoryTable = 'messages';
	Public $DBOnlineTable = 'online';
	Public $ChatSettings = NULL;
	Public $Users;
	Public Function __construct()
		{
			$this->ChatSettings = new MChatSettings($this);//Передаём родительский класс
			$this->Users = new MChatUsers($this, $this->ChatSettings);//Передаём родительский класс
			
		}
	Public Function __descruct()
		{
			
		}
	Public Function InitDB($DBHost,$DBUSer,$DBPassword, $DBBase, $DBPort=NULL, $DBCharset='utf8')
		{
				MyDB::Connect($DBHost, $DBUser, $DBPassword,$DBTable,$DBPort, $DBCharset);//Подключемся к базе
				
		}
	
	
}



/*
Настройки чата

//Пока не нужны
*/

class MChatSettings
{
	Public $Parent;//Родительский объект класс mChat
	Public $NameMinLeght = 4; //Минимальная длина имени
	Public $NameMaxLeght = 10; //Максимальная длина имени
	Public $PasswordMinLeght  = 6;//Минимальная длина пароля
	Public $PasswordMaxLeght = 16;//Максимальная длина пароля
	Public $UsersOld = 5000;//через какое время выкидывать из онлайна
	Public Function __construct($Parent)
		{
			
		}
}


/*
     Класс для работы с юзерами
*/
class MChatUsers
{
		Private $Parent;//Родительский объект класс mChat
		Public Function __construct($Parent, $Settings)
			{
					$this->Parent = $Parent;
			}
		Public Function __destruct()
			{
			
			}
		Public Function Reg($Login, $Name, $Pass, $Email,$Sex=0,$Session='')
			{
				return $this->_Return(MyDB::Query("INSERT INTO `users` (`UserName` ,`UserLogin` ,`UserPass` ,`UserMail` ,`UserSex` )VALUES ('$Name', '$Login', '$Pass',  '$Email', '$SEX');"));
			}
		Public Function IsRegUser($UserLogin)
			{
				$R = MyDB::Query("SELECT `UserLogin` FROM `users` WHERE `UserLogin` = '".$UserLogin."' LIMIT 1");
				if( $R[0]['UserLogin']) return 1; else return 0;
			}
		Public Function SetParam($UserLogin, $ParamName, $Value)
			{
				return $this->_Return(MyDB::Query("UPDATE `users` SET `$ParamName` = $Value WHERE `UserLogin` = '$UserLogin' LIMIT 1"));
			}
		Public Function SelectUsers($ParamName, $Value, $What='*')
			{
				return $this->_Return( MyDB::Query("SELECT $What FROM users WHERE `$ParamName`='$Value'") );
			}
        Public Function GetInfo($UserLogin)
            {
                return $this->_Return( MyDB::Query("SELECT `UserName`,`UserLogin`,`UserId`,`UserSex`,`LastGet` FROM `users` WHERE `UserLogin` = '$UserLogin' LIMIT 1")    );
            }
		Private Function _Return($R)
			{
				return $R;
			}
			
}
//Работа с определённым пользователем

?>
